<?php

class CuocKiemTraController extends BaseController {

    private $cuockt;

    //Ham xay dung
    function __construct() {
        $this->cuockt = new CuocKiemTra();
    }

    //Phuong thuc hien ds thong tin
    public function index() {
        $appendlinks = array();
        $key = (Input::has('key')) ? $appendlinks['key'] = ucwords(preg_replace('/\s\s+/', ' ', trim(Input::get('key')))) : null;

            $data = $this->cuockt->GetList($key);
            $data->appends($appendlinks)->links();

            $currentPage = (Input::has('page')) ? (Input::get("page") > 1) ? Input::get("page") : 1 : 1;
            $numRows = ($currentPage - 1) * $this->cuockt->GETCKT();
            
            $countchua = DB::table('cuoc_tt')->select('*')->where('STATUS_TTTT', '0')->count();

            return View::make('qlcuockt.index')
                            ->with("key", $key)
                            ->with("numRows", $numRows)
                            ->with("data", $data)
                            ->with("ckt", $countchua)
                            ->with("title", "Danh sách cuộc kiểm tra");
    }

    //Phuong thuc hien khung them thong tin
    public function add() {
        $nam = new Nam();
        $n = $nam->GetList();
        
        return View::make('qlcuockt.add')
                        ->with("nams", $n)
                        ->with("title", "Thêm cuộc kiểm tra");
    }
    
    //phuong thuc chon ho so kiểm tra
    public function ChonHS() {
        $mau = new Don();
        $status = Input::get('status');
        if($status == 0){
            $dons = $mau->GetListST();
        }
        else{
            $dons = $mau->GetList(null);
        }
        
        $idct = Input::get('idct');
        
        return View::make('qlcuockt.chonhs')
                            ->with('dons', $dons)
                            ->with('idct', $idct)
                            ->with('status', $status)
                            ->with("title", "Chọn hồ sơ kiểm tra");
    }

    public function save() {
        //lay id doan kiểm tra
        $madkt = Input::get("mdkt");
        $doankt = DB::table('doan_tt')->select('*')->where('MA_DOAN_TT', $madkt)->first();
        //lay id co so kiểm tra
        $mst = Input::get('mst');
        $cs = DB::table('cs_tt')->select('*')->where('MST', $mst)->first();
        //lay du lieu cua can bo tham gia cuoc kiểm tra
        //tencb - chucdanh - chucvu
        $cb1 = "";
        $cb2 = "";
        $cb3 = "";
        $cb11 = "";
        $cb22 = "";
        $cb33 = "";
        $cbtt = DB::table('vctdoantt')->select('*')->where('ID_DOAN_TT', $doankt->ID)->get();
        $i=1;
        foreach($cbtt as $cb){
            if($i==1){
                $cb1 = $cb->HO_TEN.' - '.$cb->TEN_CV.' - '.$cb->TEN_CD;
                $cb11 = $cb->HO_TEN.' - '.$cb->TEN_CD.' - '.$cb->trachnhiem;
            }
            if($i==2) {
                $cb2 = $cb->HO_TEN.' - '.$cb->TEN_CV.' - '.$cb->TEN_CD;
                $cb22 = $cb->HO_TEN.' - '.$cb->TEN_CD.' - '.$cb->trachnhiem;
            } 
            if($i==3) {
                $cb3 = $cb->HO_TEN.' - '.$cb->TEN_CV.' - '.$cb->TEN_CD;
                $cb33 = $cb->HO_TEN.' - '.$cb->TEN_CD.' - '.$cb->trachnhiem;
            }
            $i++;
        }
        try {
                $data = array(
                    "ID_DOAN_TT" => $doankt->ID,
                    "ID_CS_TT" => $cs->ID,
                    "ID_NAM" => Input::get("idnam"),
                    "SO_QD" => Input::get("soqd"),
                    "NG_BH_QD" => Input::get("ngbhqd"),
                    "SO_TOTRINH" => Input::get("sott"),
                    "THOI_KY_TT" => Input::get("tktt"),
                    "SO_NGAY_LAM_VIEC" => Input::get("songaylv"),
                    "NOI_DUNG_KT" => trim(Input::get("ndkt")),
                    "LOAI_HINH_KT" => trim(Input::get("lhkt")),
                    "NG_PHAN_CONG" => Input::get("ngpc"),
                    "NG_CONG_BO" => Input::get("ngcb"),
                    "STATUS_TTTT" => Input::get('status'),
                    "CT_CB1" => $cb1,
                    "CT_CB2" => $cb2,
                    "CT_CB3" => $cb3,
                    "CT1_CB" => $cb11,
                    "CT2_CB" => $cb22,
                    "CT3_CB" => $cb33
                );
                if((Input::get("ngaybh") != null)) {
                    $data['NGAY_BH_QD'] = date("d/m/Y", strtotime(Input::get("ngaybh")));
                    $data["DATE"] = date("d", strtotime(Input::get("ngaybh")));
                    $data["MONTH"] = date("m", strtotime(Input::get("ngaybh")));
                    $data["YEAR"] = date("Y", strtotime(Input::get("ngaybh")));
                }
                if((Input::get("ngaybdtt") != null)) {
                    $data['NGAY_BD_TT'] = date("d/m/Y", strtotime(Input::get("ngaybdtt")));
                }
                if((Input::get("ngaykttt") != null)) {
                    $data['NGAY_KT_TT'] = date("d/m/Y", strtotime(Input::get("ngaykttt")));
                }
                if((Input::get("ngaybdpc") != null)) {
                    $data['NGAY_BD_PC'] = date("d/m/Y", strtotime(Input::get("ngaybdpc")));
                }
                if((Input::get("ngaybdcb") != null)) {
                    $data['NGAY_BD_CONGBO'] = date("d/m/Y", strtotime(Input::get("ngaybdcb")));
                }
                if((Input::get("ngaytt") != null)) {
                    $data['NGAY_BH_TOTRINH'] = date("d/m/Y", strtotime(Input::get("ngaytt")));
                }
                
                if ($this->cuockt->SaveIn($data)) {
                    return Redirect::back()
                                    ->with("success", "Thêm cuộc kiểm tra thành công!");
                }
                return Redirect::back()
                                ->with("error", 'Lỗi thêm cuộc kiểm tra');
        } catch (Exception $ex) {
            return Redirect::back()
                            ->withInput()
                            ->with("error", "Thêm thất bại do dữ liệu không hợp lệ!");
        }
    }

    //Phuong thuc hien khung sua thong tin xac dinh
    public function edit() {
        if (Input::has('idctt')) {
            $id = Input::get('idctt');
            $idd = Input::get('iddtt');
            $idcs = Input::get('idcstt');
            $idn = Input::get('idn');
            if (is_numeric($id)) {
                $row = $this->cuockt->GetOne($id);
                $stt = 0;
                //neu trang thai =1 thi lay thon tin chi tiet cua cuoc kiem tra
                $ct = DB::table('vctcuoctt')->select('*')->where('ID_CUOC_TT', $id)->where('ID_DOAN_TT', $idd)->first();
//                lay nam kiểm tra
                $nam = new Nam();
                $n = $nam->GetList();
                //lay danh sach loai hanh vi
                $hvvp = DB::table('vipham')->select('*')->get();

                return View::make('qlcuockt.view')
                                ->with("stt", $stt)
                                ->with("nams", $n)
                                ->with("row", $row)
                                ->with("ct", $ct)
                                ->with('hvs', $hvvp)
                                ->with("title", "Xem thông tin chi tiết cuộc kiểm tra");
            }
        }
        return $this->index();
    }

    //Phuong thuc xu ly luu thong tin da sua
    public function store() {
        $id = Input::get("id");
        //lay id doan kiểm tra
        $madkt = Input::get("mdkt");
        $doankt = DB::table('doan_tt')->select('*')->where('MA_DOAN_TT', $madkt)->first();
        //lay du lieu cua can bo tham gia cuoc kiểm tra
        //tencb - chucdanh - chucvu
        $cb1 = "";
        $cb2 = "";
        $cb3 = "";
        $cb11 = "";
        $cb22 = "";
        $cb33 = "";
        $cbtt = DB::table('vctdoantt')->select('*')->where('ID_DOAN_TT', $doankt->ID)->get();
        $i=1;
        foreach($cbtt as $cb){
            if($i==1){
                $cb1 = $cb->HO_TEN.' - '.$cb->TEN_CV.' - '.$cb->TEN_CD;
                $cb11 = $cb->HO_TEN.' - '.$cb->TEN_CD.' - '.$cb->trachnhiem;
            }
            if($i==2) {
                $cb2 = $cb->HO_TEN.' - '.$cb->TEN_CV.' - '.$cb->TEN_CD;
                $cb22 = $cb->HO_TEN.' - '.$cb->TEN_CD.' - '.$cb->trachnhiem;
            } 
            if($i==3) {
                $cb3 = $cb->HO_TEN.' - '.$cb->TEN_CV.' - '.$cb->TEN_CD;
                $cb33 = $cb->HO_TEN.' - '.$cb->TEN_CD.' - '.$cb->trachnhiem;
            }
            $i++;
        }
        //lay id co so kiểm tra
        $mst = Input::get('mst');
        $cs = DB::table('cs_tt')->select('*')->where('MST', $mst)->first();
        $data = array(
                    "ID_DOAN_TT" => $doankt->ID,
                    "ID_CS_TT" => $cs->ID,
                    "ID_NAM" => Input::get("idnam"),
                    "SO_QD" => Input::get("soqd"),
                    "NG_BH_QD" => Input::get("ngbhqd"),
                    "SO_TOTRINH" => Input::get("sott"),
                    "THOI_KY_TT" => Input::get("tktt"),
                    "SO_NGAY_LAM_VIEC" => Input::get("songaylv"),
                    "NOI_DUNG_KT" => trim(Input::get("ndkt")),
                    "LOAI_HINH_KT" => trim(Input::get("lhkt")),
                    "NG_PHAN_CONG" => Input::get("ngpc"),
                    "NG_CONG_BO" => Input::get("ngcb"),
                    "STATUS_TTTT" => Input::get('status'),
                    "CT_CB1" => $cb1,
                    "CT_CB2" => $cb2,
                    "CT_CB3" => $cb3,
                    "CT1_CB" => $cb11,
                    "CT2_CB" => $cb22,
                    "CT3_CB" => $cb33
        );
        
                if((Input::get("ngaybh") != null)) {
                    $data['NGAY_BH_QD'] = date("d/m/Y", strtotime(Input::get("ngaybh")));
                    $data["DATE"] = date("d", strtotime(Input::get("ngaybh")));
                    $data["MONTH"] = date("m", strtotime(Input::get("ngaybh")));
                    $data["YEAR"] = date("Y", strtotime(Input::get("ngaybh")));
                }
                if((Input::get("ngaybdtt") != null)) {
                    $data['NGAY_BD_TT'] = date("d/m/Y", strtotime(Input::get("ngaybdtt")));
                }
                if((Input::get("ngaykttt") != null)) {
                    $data['NGAY_KT_TT'] = date("d/m/Y", strtotime(Input::get("ngaykttt")));
                }
                if((Input::get("ngaybdpc") != null)) {
                    $data['NGAY_BD_PC'] = date("d/m/Y", strtotime(Input::get("ngaybdpc")));
                }
                if((Input::get("ngayktpc") != null)) {
                    $data['NGAY_KT_PC'] = date("d/m/Y", strtotime(Input::get("ngayktpc")));
                }
                if((Input::get("ngaybdcb") != null)) {
                    $data['NGAY_BD_CONGBO'] = date("d/m/Y", strtotime(Input::get("ngaybdcb")));
                }
                if((Input::get("ngayktcb") != null)) {
                    $data['NGAY_KT_CONGBO'] = date("d/m/Y", strtotime(Input::get("ngayktcb")));
                }
                if((Input::get("ngaytt") != null)) {
                    $data['NGAY_BH_TOTRINH'] = date("d/m/Y", strtotime(Input::get("ngaytt")));
                }
        if ($this->cuockt->validation(Input::all())) {
            if ($this->cuockt->StoreIn($data, $id)) {
                return Redirect::to('ql=dscuockt')
                    ->with("success", "Chỉnh sửa cuộc kiểm tra hoàn tất!");
            }
            return Redirect::back()
                    ->with("error", "Chỉnh sửa cuộc kiểm tra thất bại!");
        }
        return Redirect::back()
            ->with("error", "Sửa thất bại do dữ liệu không phù hợp!");
    }

    //Phuong thuc xoa mot thong tin nao do
    public function remove() {
        if (Input::has("id")) {
            $id = Input::get("id");
            $status = Input::get('status');
            if (is_numeric($id)) {
                if ($this->cuockt->Remove($id)) {
                    $appendlinks = array();
                    $key = (Input::has('key')) ? $appendlinks['key'] = ucwords(preg_replace('/\s\s+/', ' ', trim(Input::get('key')))) : null;

                    try {
                        $data = $this->cuockt->GetList($key);
                        $data[0]->ID; //Bẫy lỗi
                    } catch (Exception $ex) {
                        $url = url("ql=dscuockt");
                        $currentPage = (Input::has('page')) ? (Input::get("page") > 1) ? Input::get("page") : 1 : 1;
                        Input::merge(array('page' => ( --$currentPage == 0) ? 1 : $currentPage));

                        $data = $this->cuockt->GetList($key);
                        $data->setBaseUrl('ql=dscuockt');
                        $data->appends($appendlinks)->links();

                        $numRows = ($currentPage - 1) * $this->cuockt->GetCKT();
                        $url = $url . "?page=" . $currentPage . (($key != null) ? "&key=" . $key : "");
                        //dem tong so cuoc kiểm tra chua tien hanh kiểm tra
                        $countchua = DB::table('cuoc_tt')->select('*')->where('STATUS_TTTT', '0')->count();
                        //kiem tra neu da tien kiểm tra tra thi xoa trong bang chi tiet cuoc kiểm tra
                        if($status == 1) {
                            DB::table('chi_tiet_cuoc_tt')->where('ID_CUOC_TT', $id)->delete();
                        }
                        return View::make('qlcuockt.index')
                                        ->with("key", $key)
                                        ->with("numRows", $numRows)
                                        ->with("data", $data)
                                        ->with("url", $url)
                                        ->with('ckt', $countchua)
                                        ->with("warning", "Xóa cuộc kiểm tra hoàn tất!<br/>Cảnh báo: không khuyến khích việc xóa dữ liệu này.")
                                        ->with("title", "Danh sách cuộc kiểm tra");
                    }
                    return Redirect::back()
                                    ->with("warning", "Xóa cuộc kiểm tra hoàn tất!<br/>Cảnh báo: không khuyến khích việc xóa dữ liệu này.");
                }
                return Redirect::back()
                                ->with("error", "Xóa cuộc kiểm tra thất bại!");
            }
        }
        return Redirect::back()
                        ->with("error", "Không thể xóa do không có đoàn này trong CSDL!");
    }

    //Phuong thuc tim kiem thong tin xac dinh theo thuc post
    public function search() {
        if (Request::ajax()) {
            $mst = Input::get('mast');
            $nam = Input::get('nam');
            try {
                $data = $this->cuockt->GetOneWithMST($mst, $nam);
                return Response::json($data);
            } catch (Exception $ex) {
                return Response::json(null);
            }
        }
    }
    
    //Ham luu phan tich chuyen sau
    public function savePhanTichChuyenSau() {
        if(Input::has("ID")) {
            $data = array(
                "ttnoptokhai_thue"  => (Input::get('ttnoptokhai_thue') == 1) ? "Đúng quy định" : "Không đúng quy định",
                "ttnop_bc_quyettoan"  => (Input::get('ttnop_bc_quyettoan') == 1) ? "Có" : "Không",
                "quyetdinh_xl_vpham"  => (Input::get('quyetdinh_xl_vpham') == 1) ? "Có" : "Không",
                "vp_cdo_hdon"  => (Input::get('vp_cdo_hdon') == 1) ? "Có" : "Không",
                "nopthue_qhan"  => (Input::get('nopthue_qhan') == 1) ? "Có" : "Không",
                "lo_ltuc"  => (Input::get('lo_ltuc') == 1) ? "Có" : "Không",
                "hoanthue"  => (Input::get('hoanthue') == 1) ? "Có" : "Không",
                "ttkiemtra_ttra"  => (Input::get('ttkiemtra_ttra') == 1) ? "Có kiểm tra" : "Không kiểm tra",
                "ttin_tthap"  => (Input::get('ttin_tthap') == 1) ? "Có" : "Không có",
                "ptich_cac_ctieu"  => Input::get('ptich_cac_ctieu'),
                "cac_nghi_ngo"  => Input::get('cac_nghi_ngo'),
                "dxuat_ndung_ktra"  => Input::get('dxuat_ndung_ktra'),
                "mdo_tthu_nthue"  => (Input::get('mdo_tthu_nthue') == 1) ? "Đúng quy định" : "Không đúng quy định"
            );
            try {
                $this->cuockt->StoreIn($data, Input::get("ID"));
                echo "OK";
            } catch (Exception $ex) {
                echo "Error";
            }
        } else {
            echo "Error";
        }
    }

}
